Total Complexity | 2 |
Total Lines | 26 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | import { Injectable } from '@nestjs/common'; |
||
5 | |||
6 | @Injectable() |
||
7 | export class FileUploadS3Adapter implements IFileUpload { |
||
8 | constructor( |
||
9 | private readonly configService: ConfigService, |
||
10 | private readonly s3Factory: S3Factory |
||
11 | ) {} |
||
12 | |||
13 | public getEndPoint(filePath: string): Promise<string> { |
||
14 | const bucket = this.configService.get<string>('STORAGE_BUCKET'); |
||
15 | |||
16 | const s3Api = this.s3Factory.create(); |
||
17 | |||
18 | const s3Params = { |
||
19 | Bucket: bucket, |
||
20 | Key: filePath, |
||
21 | Expires: 600, |
||
22 | ContentType: 'application/octet-stream' |
||
23 | }; |
||
24 | |||
25 | return new Promise<string>((resolve, reject) => { |
||
26 | s3Api.getSignedUrl('putObject', s3Params, (err, data) => { |
||
27 | if (err) { |
||
28 | reject(err); |
||
29 | } |
||
30 | resolve(data); |
||
31 | }); |
||
35 |